package com.justgame.project.service.just.mapper;

import com.justgame.project.service.api.dto.JustGameInfoDTO;
import com.justgame.project.service.api.vo.JustGameInfoVO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface JustGameInfoMapper {
    List<JustGameInfoVO> Select(@Param("dto") JustGameInfoDTO dto);

    JustGameInfoVO SelectById(@Param("id") String id);

    Long SelectCount(@Param("dto") JustGameInfoDTO dto);

    boolean Insert(@Param("dto") JustGameInfoDTO dto);

    int UpdateById(@Param("dto") JustGameInfoDTO dto);

    int Delete(@Param("dto") JustGameInfoDTO dto);

    /**
     * 获取推荐游戏
     */
    @MapKey("id")
    List<Map<String, Object>> getPopularGames();

    /**
     * 加载最新上架
     */
    @MapKey("id")
    List<Map<String, Object>> getNewReleasesGames();

    /**
     * 加载口碑最佳
     */
    @MapKey("id")
    List<Map<String, Object>> getBestEvaluationGames();

    /**
     * 加载搜素游戏数据
     */
    @MapKey("id")
    List<Map<String, Object>> getSearchGames(@Param("dto") JustGameInfoDTO dto);

    /**
     * 简要游戏信息列表
     */
    @MapKey("id")
    List<Map<String, Object>> getSimpleList(@Param("dto") JustGameInfoDTO dto);

    Map<String, Object> SelectDetail(@Param("id") String id, @Param("userId") String userId);
}
